github.com/hyperion-hyn/go-ethereum@v2.4.0+incompatible/docs/Privacy/Tessera/Usage/Interface & API.md (about)

     1  ## Interface Details
     2  
     3  All interfaces can be set to run over HTTP, GRPC or HTTP-over-Unix-Sockets.
     4  
     5  ### gRPC (for inter-node communication)
     6  
     7  We currently have an implementation of gRPC for peer node communication as experiment API. This is not enabled on Quorum yet, but between Tessera nodes they can be enabled by adding in a couple of properties in the configuration file as child elements of `serverConfig`.
     8  
     9  - `grpcPort` - when this value is specified, Tessera node will start a gRPC server listening on this port. The normal `port` value would still be used for starting REST server.
    10  
    11  - `communicationType` - possible values are `REST`, `GRPC`. Default value is `REST`.
    12  
    13  Please note that communication between Quorum and Tessera are still via unix socket. This communication flag provides additional options for Tessera peer-to-peer communication. If gRPC is the option specified, please ensure the peers urls are provided with the appropriate ports.
    14  
    15  ---
    16  
    17  ### Tessera to Tessera - Public API
    18  
    19  Tessera nodes communicate with each other for:
    20  
    21  - Node/network discovery
    22  - Sending/Receiving encrypted payloads
    23  
    24  The following endpoints are advertised on this interface:
    25  
    26  * `/version`
    27  * `/upcheck`
    28  * `/push`
    29  * `/resend`
    30  * `/partyinfo`
    31  * `/partyinfo/validate`
    32  
    33  ### Third Party - Public API 
    34  
    35  Tessera nodes communicate with third parties for:
    36  
    37  - storing encrypted payloads for external applications
    38  
    39  The following endpoints are advertised on this interface:
    40  
    41  * `/version`
    42  * `/upcheck`
    43  * `/storeraw`
    44  
    45  ### Quorum to Tessera - Private API
    46  
    47  Quorum uses this API to:
    48  - Check if the local Tessera node is running
    49  - Send and receive details of private transactions
    50  
    51  The following endpoints are advertised on this interface:
    52  - `/version`
    53  - `/upcheck`
    54  - `/sendraw`
    55  - `/send`
    56  - `/receiveraw`
    57  - `/receive`
    58  - `/sendsignedtx`
    59  
    60  ### Admin API
    61  
    62  Admins should use this API to:
    63  - Access information about the Tessera node
    64  - Make changes to the configuration of the Tessera node
    65  
    66  The following endpoints are advertised on this API:
    67  - `/peers` - Add to, and retrieve from, the Tessera node's peers list
    68  - `/keypairs` - Retrieve all public keys or search for a particular public key in use by the Tessera node
    69  
    70  ## API Details
    71  
    72  **`version`** - _Get Tessera version_
    73  
    74  - Returns the version of Tessera that is running.
    75  
    76  **`upcheck`** - _Check Tessera node is running_
    77  
    78  - Returns the text "I'm up!"
    79  
    80  **`push`** - _Push transactions between nodes_
    81  
    82  - Persist encrypted payload received from another node.
    83  
    84  **`resend`** - _Resend transaction_
    85  
    86  - Resend all transactions for given key or given hash/recipient.
    87  
    88  **`partyinfo`** - _Retrieve details of known nodes_
    89  
    90  - GET: Request public keys/url of all known peer nodes.
    91  - POST: accepts a stream that contains the caller node's network information, and returns a merged copy with the callee node's network information
    92  
    93  **`partyinfo/validate`** - _Validates a node possesses a key_ 
    94  
    95  - Will request a node to decrypt a transaction in order to prove that it has access to the private part of its advertised public key.
    96  
    97  **`sendraw`** - _Send transaction bytestring_
    98  
    99  - Send transaction payload bytestring from Quorum to Tessera node. Tessera sends the transaction hash in the response back. 
   100  
   101  **`send`** - _Send transaction bytestring_
   102  
   103  - Similar to sendraw however request payload is in json format. Please see our [Swagger documentation](https://jpmorganchase.github.io/tessera-swagger/index.html) for object model.
   104  
   105  **`storeraw`** - _Store transaction bytestring_
   106  
   107  - Store transaction bytestring from a third party to Tessera node. Tessera sends the transaction hash in the response back.
   108  
   109  **`sendsignedtx`** - _Distribute signed transaction payload_
   110  
   111  - Send transaction payload identified by hash (returned by storeraw) from Quorum to Tessera node. Tessera sends the transaction hash in the response back.
   112  
   113  **`receiveraw`** - _Receive transaction bytestring_ 
   114  
   115  - Receive decrypted bytestring of the transaction payload from Tessera to Quorum for transactions it is party to.
   116  
   117  **`receive`** - _Receive transaction bytestring_
   118  
   119  - Similar to receiveraw however request payload is in json format. Please see our [Swagger documentation](https://jpmorganchase.github.io/tessera-swagger/index.html) for object model.
   120  
   121  **`delete`** - _Delete a transaction_ 
   122  
   123  - Delete hashed encrypted payload stored in Tessera nodes.
   124  
   125  For more interactions with the API see the [Swagger documentation](https://jpmorganchase.github.io/tessera-swagger/index.html).